package com.cxhc.system.mapper.cockpit;

import com.cxhc.system.domain.app.CmAreaInfo;
import com.cxhc.system.domain.app.SysEnterprise;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;


/**
 * 企业表 数据层
 *
 * @author Dhq
 */
public interface SysEntMapper {


    /**
     * 统计企业用户
     *
     * @param date 时间
     * @return 企业用户
     */
    int countEnt(@Param("date")String date,@Param("areaId")String areaId);

    /**
     * 统计企业用户
     *
     * @param date 时间
     * @return 企业用户
     */
    List<Map<String,Object>> countEntByType(@Param("date")String date,@Param("areaId")String areaId);

    /**
     * 统计企业用户
     *
     * @param date 时间
     * @return 企业用户
     */
    List<Map<String,Object>> queryEntEvent(@Param("date")String date,@Param("areaId")String areaId);

    /**
     * 统计企业用户
     *
     * @param date 时间
     * @return 企业用户
     */
    List<Map<String,Object>> queryEntUser(@Param("date")String date,@Param("areaId")String areaId);

    /**
     * 统计企业用户
     *
     * @param map map
     * @return 企业用户
     */
    @MapKey("areaID")
    Map<String,Map<String,Object>> countEntByFloor(Map<String,String> map);

    /**
     * 统计企业用户
     *
     * @param map 时间
     * @return 企业用户
     */
    @MapKey("areaID")
    Map<String,Map<String,Object>> countUserByFloor(Map<String,String> map);

    /**
     * 统计企业用户
     *
     * @param list map
     * @return 企业用户
     */
    @MapKey("areaID")
    Map<String,Map<String,Object>> countEntByFloors(List<CmAreaInfo> list);

    /**
     * 统计企业用户
     *
     * @param list 时间
     * @return 企业用户
     */
    @MapKey("areaID")
    Map<String,Map<String,Object>> countUserByFloors(List<CmAreaInfo> list);


    /**
     * 统计企业用户
     *
     * @param areaId 时间
     * @return 企业用户
     */
    List<Map<String,Object>> selectEntListByArea(String areaId);

    /**
     * 查询企业
     *
     * @param ID 企业主键
     * @return 企业
     */
    public SysEnterprise selectSysEnterpriseByID(Long ID);


    List<String> selectFloorList(Long areaID);

    String selectCount(SysEnterprise sysEnterprise);


    /**
     * 查询企业列表
     *
     * @param sysEnterprise 企业
     * @return 企业集合
     */
    public List<SysEnterprise> selectSysEnterpriseList(SysEnterprise sysEnterprise);

    /**
     * 新增企业
     *
     * @param sysEnterprise 企业
     * @return 结果
     */
    public int insertSysEnterprise(SysEnterprise sysEnterprise);

    /**
     * 修改企业
     *
     * @param sysEnterprise 企业
     * @return 结果
     */
    public int updateSysEnterprise(SysEnterprise sysEnterprise);

    /**
     * 删除企业
     *
     * @param ID 企业主键
     * @return 结果
     */
    public int deleteSysEnterpriseByID(Long ID);

    /**
     * 批量删除企业
     *
     * @param IDs 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteSysEnterpriseByIDs(Long[] IDs);

    /**
     * 统计企业用户
     *
     * @return 企业用户
     */
    List<Map<String,Object>> queryEntEventForArea();
}
